1. Field of the Invention
The invention relates generally to storage virtualization and more specifically relates to circuits, systems and methods for implementing storage virtualization within a storage controller such as in a Redundant Array of Independent Disks (RAID) storage system.
2. Discussion of Related Art
Storage virtualization has grown in popularity especially in larger computer storage applications. Virtualized storage, in essence, hides from attached host systems the exact structure, layout, and location of storage devices and storage subsystems that are available to the host systems. Also, certain automated management functions may be performed at the level of virtualization management all hidden from the attached host systems. Exemplary management functions may include automated backups, mirroring/replication, shadowing, etc. Thus data stored in such virtualized storage systems may be mapped, relocated, mirrored, replicated, and otherwise managed to improve efficiency of storage operations in the computing environment all without knowledge of the host system applications.
As presently practiced, virtualization is handled by a virtual storage control component. Such a virtualization control component is presently implemented as software operable on the multiple, cooperating host systems that wish to couple to the virtualized storage systems. Alternatively, as presently practiced, storage virtualization may be implemented as a stand alone network appliance coupled between the host systems and the storage components to be managed as a virtualized storage system.
Storage virtualization as presently practiced presents problems of performance and scalability. Where the storage virtualization control is implemented as software elements in the various host systems, performance in access to the underlying storage systems through the virtualization layer may be impaired by slow software execution and required generalized network communications among the cooperating host systems. For example, some common features such as automated mirroring of a logical volume, shadow copies/snapshots of a logical volume, storage clustering, and the like may be severely limited in performance due to the software intervention of the virtualization software layers cooperating among the various attached host systems.
Where storage virtualization is implemented as a stand alone network appliance interposed between the host systems and the underlying storage systems, the virtualization may not scale well with the size and complexity of topology of the underlying storage systems nor with the size and complexity of topology of the attached host systems. A small virtualization controller may be cost effective in a small computing environment with limited underlying storage needs and limited host system connectivity. However, as storage requirements grow and/or as the number of host systems grow, the virtualization control component may need to be replaced with a larger component capable of managing larger, more complex underlying storage systems and host system networks.
Thus it is an ongoing challenge to maintain desired performance levels in access to underlying storage systems through a virtualization layer while providing enhanced scalability and flexibility in the configuration of the underlying storage capacity and configuration.